﻿using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using NHibernate.Criterion;

namespace BoneSystem.Business.Entity.CadastrosOficiais.Endereco
{
    /// <summary>
    ///     Classe repositório da classe "Endereco"
    /// </summary>
    public class EnderecoRepository : RepositoryBase<Endereco>
    {
        /// <summary>
        ///     Método que consulta uma cidade com base no seu CEP.
        /// </summary>
        /// <param name="cep">Cep da cidade.</param>
        /// <returns>
        ///     Retorna o endereço de acordo com o CEP. Retorna null se não for
        ///     encontrado nenhum registro ou se não for informado o CEP ou ainda
        ///     se CEP não corresponder ao padrão esperado.
        /// </returns>
        public static BoneSystem.Business.Entity.CadastrosOficiais.Endereco.Endereco GetByCep(string cep)
        {
            //return NHibernateHttpModule.Session.CreateCriteria<Endereco>().Add(Restrictions.Like("Cep", value: "%" + cep + "%")).UniqueResult<Endereco>();
            var endereco = NHibernateHttpModule.Session.QueryOver<BoneSystem.Business.Entity.CadastrosOficiais.Endereco.Endereco>()
                .Where(endereco1 => endereco1.Cep == cep)
                .SingleOrDefault();
            return endereco;
        }

        
    }
}